package com.chenfan.mcn.model;

import com.baomidou.mybatisplus.annotation.TableName;
import com.chenfan.mcn.extension.log.FieldDesc;
import com.chenfan.mcn.extension.log.FieldTypeEnum;
import com.chenfan.mcn.model.base.BaseOwnerEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 *
 * </p>
 *
 * @author lizhejin
 * @since 2021-02-26
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("purchase_contract")
public class PurchaseContract extends BaseOwnerEntity {

    private static final long serialVersionUID = 5869970547392265171L;

    /**
     * 采购合同编号
     */
    private String contractCode;

    /**
     * 单据状态:0_待提交, 1_审批中, 2_审批通过, 3_审批拒绝, 4_已撤回, 9_作废
     */
    private Integer purchaseStatus;

    /**
     * 对方公司名称
     */
    @NotBlank(message = "对方公司名称不能为空")
    private String oppositeCompanyName;

    /**
     * 我司签约主体id（取【公司管理】的数据）
     */
    private Long contractingId;

    /**
     * 我司签约主体（取【公司管理】的数据）
     */
    @NotBlank(message = "我司签约主体不能为空")
    private String contractingParties;

    /**
     * 收入合同编号
     */
    private String incomeContractCode;

    /**
     * 采购合同金额
     */
    @NotNull(message = "采购合同金额不能为空")
    private BigDecimal contractAmount;

    /**
     * 合同签约日期
     */
    @NotNull(message = "合同签约日期不能为空")
    private Date signingDate;

    /**
     * 合作内容简介
     */
    @NotBlank(message = "合作内容简介不能为空")
    private String contentValidaty;

    /**
     * 合同附件
     */
    @NotBlank(message = "合同附件不能为空")
    @FieldDesc(value = "合同附件", fieldType = FieldTypeEnum.FILE)
    private String enclosure;

    /**
     * 备注
     */
    private String remark;

    /**
     * 归档状态(0-待盖章，1-待归档，2-已归档)
     */
    private Integer archivingStatus;

    /**
     * 归档编号
     */
    private String archivingCode;

    /**
     * 执行单编号
     */
    private String executionCode;
}
